package com.ruoyi.project.comp.setting.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 参赛设置对象 comp_setting
 *
 * @author ruoyi
 * @date 2025-11-02
 */
        public class CompSetting extends BaseEntity
        {
        private static final long serialVersionUID = 1L;

                /** 设置ID，主键 */
        private Long id;

                /** 比赛名称 */
                @Excel(name = "比赛名称")
        private String contestName;

                /** 报名开始时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date signUpStartTime;

                /** 报名结束时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date signUpEndTime;

                /** 比赛开始时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "比赛开始时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date contestStartTime;

                /** 比赛结束时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "比赛结束时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date contestEndTime;

                /** 每人每日点赞次数上限 */
                @Excel(name = "每人每日点赞次数上限")
        private Long dailyLikeLimit;

                /** 每人每日转发次数上限 */
                @Excel(name = "每人每日转发次数上限")
        private Long dailyShareLimit;

                /** 是否启用当前设置（1-启用，0-禁用） */
                @Excel(name = "是否启用当前设置", readConverterExp = "1=-启用，0-禁用")
        private Integer isActive;

                /** 设置创建时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "设置创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date createdAt;

                /** 设置更新时间 */
                @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
                @Excel(name = "设置更新时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date updatedAt;


        // ====================================== 自定义字段开始 ======================================
        // 在此处添加的自定义字段，重新生成代码时不会被覆盖
        // 示例：
        // private String customField; // 自定义扩展字段
        // ====================================== 自定义字段结束 ======================================


        // ====================================== 自定义方法开始 ======================================
        // 在此处添加的自定义getter/setter或其他方法，重新生成代码时不会被覆盖
        // 示例：
        // public String getCustomField() { return customField; }
        // public void setCustomField(String customField) { this.customField = customField; }
        // ====================================== 自定义方法结束 ======================================


                public void setId(Long id)
                {
                    this.id = id;
                }

                public Long getId()
                {
                    return id;
                }
                public void setContestName(String contestName)
                {
                    this.contestName = contestName;
                }

                public String getContestName()
                {
                    return contestName;
                }
                public void setSignUpStartTime(Date signUpStartTime)
                {
                    this.signUpStartTime = signUpStartTime;
                }

                public Date getSignUpStartTime()
                {
                    return signUpStartTime;
                }
                public void setSignUpEndTime(Date signUpEndTime)
                {
                    this.signUpEndTime = signUpEndTime;
                }

                public Date getSignUpEndTime()
                {
                    return signUpEndTime;
                }
                public void setContestStartTime(Date contestStartTime)
                {
                    this.contestStartTime = contestStartTime;
                }

                public Date getContestStartTime()
                {
                    return contestStartTime;
                }
                public void setContestEndTime(Date contestEndTime)
                {
                    this.contestEndTime = contestEndTime;
                }

                public Date getContestEndTime()
                {
                    return contestEndTime;
                }
                public void setDailyLikeLimit(Long dailyLikeLimit)
                {
                    this.dailyLikeLimit = dailyLikeLimit;
                }

                public Long getDailyLikeLimit()
                {
                    return dailyLikeLimit;
                }
                public void setDailyShareLimit(Long dailyShareLimit)
                {
                    this.dailyShareLimit = dailyShareLimit;
                }

                public Long getDailyShareLimit()
                {
                    return dailyShareLimit;
                }
                public void setIsActive(Integer isActive)
                {
                    this.isActive = isActive;
                }

                public Integer getIsActive()
                {
                    return isActive;
                }
                public void setCreatedAt(Date createdAt)
                {
                    this.createdAt = createdAt;
                }

                public Date getCreatedAt()
                {
                    return createdAt;
                }
                public void setUpdatedAt(Date updatedAt)
                {
                    this.updatedAt = updatedAt;
                }

                public Date getUpdatedAt()
                {
                    return updatedAt;
                }



        @Override
        public String toString() {
            return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("contestName", getContestName())
                .append("signUpStartTime", getSignUpStartTime())
                .append("signUpEndTime", getSignUpEndTime())
                .append("contestStartTime", getContestStartTime())
                .append("contestEndTime", getContestEndTime())
                .append("dailyLikeLimit", getDailyLikeLimit())
                .append("dailyShareLimit", getDailyShareLimit())
                .append("isActive", getIsActive())
                .append("createdAt", getCreatedAt())
                .append("updatedAt", getUpdatedAt())
                    // ====================================== 自定义toString开始 ======================================
                    // 手动添加自定义字段的toString内容，例如：
                    // .append("customField", getCustomField())
                    // ====================================== 自定义toString结束 ======================================
                    .toString();
        }
}